<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>InfCommunicationGroup</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<link rel="home" href="index.html" title="libinfinity-0.4 Reference Manual">
<link rel="up" href="ch06.html" title="Network abstraction">
<link rel="prev" href="InfCommunicationObject.html" title="InfCommunicationObject">
<link rel="next" href="InfCommunicationHostedGroup.html" title="InfCommunicationHostedGroup">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="InfCommunicationObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libinfinity-0.4 Reference Manual</th>
<td><a accesskey="n" href="InfCommunicationHostedGroup.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#InfCommunicationGroup.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#InfCommunicationGroup.description" class="shortcut">Description</a>
                   | 
                  <a href="#InfCommunicationGroup.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#InfCommunicationGroup.properties" class="shortcut">Properties</a>
                   | 
                  <a href="#InfCommunicationGroup.signals" class="shortcut">Signals</a>
</td></tr>
</table>
<div class="refentry" title="InfCommunicationGroup">
<a name="InfCommunicationGroup"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="InfCommunicationGroup.top_of_page"></a>InfCommunicationGroup</span></h2>
<p>InfCommunicationGroup — Communication channel for mulitple connections</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" title="Stability Level">
<a name="InfCommunicationGroup.stability-level"></a><h2>Stability Level</h2>
Unstable, unless otherwise indicated
</div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="InfCommunicationGroup.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;libinfinity/communication/inf-communication-group.h&gt;

                    <a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup-struct" title="InfCommunicationGroup">InfCommunicationGroup</a>;
                    <a class="link" href="InfCommunicationGroup.html#InfCommunicationGroupClass" title="InfCommunicationGroupClass">InfCommunicationGroupClass</a>;
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="InfCommunicationGroup.html#inf-communication-group-get-name" title="inf_communication_group_get_name ()">inf_communication_group_get_name</a>    (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>);
<a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="returnvalue">InfCommunicationObject</span></a> * <a class="link" href="InfCommunicationGroup.html#inf-communication-group-get-target" title="inf_communication_group_get_target ()">inf_communication_group_get_target</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfCommunicationGroup.html#inf-communication-group-set-target" title="inf_communication_group_set_target ()">inf_communication_group_set_target</a>  (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a> *target</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="InfCommunicationGroup.html#inf-communication-group-is-member" title="inf_communication_group_is_member ()">inf_communication_group_is_member</a>   (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfCommunicationGroup.html#inf-communication-group-send-message" title="inf_communication_group_send_message ()">inf_communication_group_send_message</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> xml</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfCommunicationGroup.html#inf-communication-group-send-group-message" title="inf_communication_group_send_group_message ()">inf_communication_group_send_group_message</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> xml</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfCommunicationGroup.html#inf-communication-group-cancel-messages" title="inf_communication_group_cancel_messages ()">inf_communication_group_cancel_messages</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="InfCommunicationGroup.html#inf-communication-group-get-method-for-network" title="inf_communication_group_get_method_for_network ()">inf_communication_group_get_method_for_network</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *network</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="InfCommunicationGroup.html#inf-communication-group-get-method-for-connection" title="inf_communication_group_get_method_for_connection ()">inf_communication_group_get_method_for_connection</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *grp</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *conn</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="InfCommunicationGroup.html#inf-communication-group-get-publisher-id" title="inf_communication_group_get_publisher_id ()">inf_communication_group_get_publisher_id</a>
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *for_connection</code></em>);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="InfCommunicationGroup.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----InfCommunicationGroup
         +----<a class="link" href="InfCommunicationHostedGroup.html" title="InfCommunicationHostedGroup">InfCommunicationHostedGroup</a>
         +----<a class="link" href="InfCommunicationJoinedGroup.html" title="InfCommunicationJoinedGroup">InfCommunicationJoinedGroup</a>
</pre>
</div>
<div class="refsect1" title="Properties">
<a name="InfCommunicationGroup.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup--communication-manager" title='The "communication-manager" property'>communication-manager</a>"    <a class="link" href="InfCommunicationManager.html" title="InfCommunicationManager"><span class="type">InfCommunicationManager</span></a>*  : Write / Construct Only
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup--communication-registry" title='The "communication-registry" property'>communication-registry</a>"   <a class="link" href="InfCommunicationRegistry.html" title="InfCommunicationRegistry"><span class="type">InfCommunicationRegistry</span></a>*  : Write / Construct Only
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup--name" title='The "name" property'>name</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup--target" title='The "target" property'>target</a>"                   <a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a>*  : Read / Write
</pre>
</div>
<div class="refsect1" title="Signals">
<a name="InfCommunicationGroup.signals"></a><h2>Signals</h2>
<pre class="synopsis">
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup-member-added" title='The "member-added" signal'>member-added</a>"                                   : Run Last
  "<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup-member-removed" title='The "member-removed" signal'>member-removed</a>"                                 : Run Last
</pre>
</div>
<div class="refsect1" title="Description">
<a name="InfCommunicationGroup.description"></a><h2>Description</h2>
<p>
<a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> represents a group of different hosts. The group
supports sending messages between group members and to the whole group.
</p>
<p>
A communication group supports multiple networks. Each connection belongs
to a network, identified by the <a class="link" href="InfXmlConnection.html#InfXmlConnection--network" title='The "network" property'><span class="type">"network"</span></a> property. It is
assumed that hosts on different networks can't directly communicate with
each other. Examples for networks are "tcp/ip" or "jabber".
</p>
<p>
All communication for a given network is performed by a
<a class="link" href="InfCommunicationMethod.html" title="InfCommunicationMethod"><span class="type">InfCommunicationMethod</span></a>. The method defines how data is sent is sent
to the group. For example, a method could choose to relay all data via
a central server, or to send all data directly between the hosts, or in
case of a jabber network, use jabber groupchat functionality.
</p>
</div>
<div class="refsect1" title="Details">
<a name="InfCommunicationGroup.details"></a><h2>Details</h2>
<div class="refsect2" title="InfCommunicationGroup">
<a name="InfCommunicationGroup-struct"></a><h3>InfCommunicationGroup</h3>
<pre class="programlisting">typedef struct _InfCommunicationGroup InfCommunicationGroup;</pre>
<p>
<a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> is an opaque data type. You should only access it
via the public API functions.
</p>
</div>
<hr>
<div class="refsect2" title="InfCommunicationGroupClass">
<a name="InfCommunicationGroupClass"></a><h3>InfCommunicationGroupClass</h3>
<pre class="programlisting">typedef struct {
  /* Signals */
  void (*member_added)(InfCommunicationGroup* group,
                       InfXmlConnection* connection);
  void (*member_removed)(InfCommunicationGroup* group,
                         InfXmlConnection* connection);

  /* Virtual functions */
  /* TODO: Should this be const gchar* const* get_methods? */
  const gchar* (*get_method)(InfCommunicationGroup* group,
                             unsigned int index);
  gchar* (*get_publisher_id)(InfCommunicationGroup* group,
                             InfXmlConnection* for_connection);
} InfCommunicationGroupClass;
</pre>
<p>
The virtual methods and default signal handlers of <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfCommunicationGroupClass.member-added"></a>member_added</code></em> ()</span></p></td>
<td>Default signal handler of the
<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup-member-added" title='The "member-added" signal'><span class="type">"member-added"</span></a> signal.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfCommunicationGroupClass.member-removed"></a>member_removed</code></em> ()</span></p></td>
<td>Default signal handler of the
<a class="link" href="InfCommunicationGroup.html#InfCommunicationGroup-member-removed" title='The "member-removed" signal'><span class="type">"member-removed"</span></a> signal.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfCommunicationGroupClass.get-method"></a>get_method</code></em> ()</span></p></td>
<td>Virtual function to determine the methods to use for the
group, in order of priority.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfCommunicationGroupClass.get-publisher-id"></a>get_publisher_id</code></em> ()</span></p></td>
<td>Virtual function to obtain the ID of the publishing
host of this group.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_get_name ()">
<a name="inf-communication-group-get-name"></a><h3>inf_communication_group_get_name ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       inf_communication_group_get_name    (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>);</pre>
<p>
Returns the name of the group.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The name of the group. The returned string is owned by the group,
you don't need to free it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_get_target ()">
<a name="inf-communication-group-get-target"></a><h3>inf_communication_group_get_target ()</h3>
<pre class="programlisting"><a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="returnvalue">InfCommunicationObject</span></a> * inf_communication_group_get_target
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>);</pre>
<p>
Returns the group's target. The target of a group is the
<a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a> to which received and sent messages are reported.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_set_target ()">
<a name="inf-communication-group-set-target"></a><h3>inf_communication_group_set_target ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_communication_group_set_target  (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a> *target</code></em>);</pre>
<p>
Sets the group's target. The target of a group is the
<a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a> to which received and sent messages are reported.
If <em class="parameter"><code>target</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, then the target will be unset.
</p>
<p>
You can safely call this function with an object that holds a reference on
the group since the <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> only holds a weak reference to
its <em class="parameter"><code>target</code></em>. This means that you need to keep a reference on <em class="parameter"><code>target</code></em>
yourself.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_is_member ()">
<a name="inf-communication-group-is-member"></a><h3>inf_communication_group_is_member ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            inf_communication_group_is_member   (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>);</pre>
<p>
Returns whether <em class="parameter"><code>connection</code></em> is a member of <em class="parameter"><code>group</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>A <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>connection</code></em> is a member of <em class="parameter"><code>group</code></em>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_send_message ()">
<a name="inf-communication-group-send-message"></a><h3>inf_communication_group_send_message ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_communication_group_send_message
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> xml</code></em>);</pre>
<p>
Sends a message <em class="parameter"><code>connection</code></em> which must be a member of <em class="parameter"><code>group</code></em>. <em class="parameter"><code>connection</code></em>
needs to be a member of this group. This function takes ownership of <em class="parameter"><code>xml</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>The <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> to which to send the message.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>xml</code></em> :</span></p></td>
<td>The message to send.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_send_group_message ()">
<a name="inf-communication-group-send-group-message"></a><h3>inf_communication_group_send_group_message ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_communication_group_send_group_message
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><span class="type">xmlNodePtr</span> xml</code></em>);</pre>
<p>
Sends a message to all members of <em class="parameter"><code>group</code></em>. This function takes ownership
of <em class="parameter"><code>xml</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>xml</code></em> :</span></p></td>
<td>The message to send.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_cancel_messages ()">
<a name="inf-communication-group-cancel-messages"></a><h3>inf_communication_group_cancel_messages ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_communication_group_cancel_messages
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *connection</code></em>);</pre>
<p>
Stops all messages scheduled to be sent to <em class="parameter"><code>connection</code></em> from being sent.
Messages for which <a class="link" href="InfCommunicationObject.html#inf-communication-object-enqueued" title="inf_communication_object_enqueued ()"><code class="function">inf_communication_object_enqueued()</code></a> has already been
called cannot be cancelled anymore.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>The <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> for which to cancel messages.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_get_method_for_network ()">
<a name="inf-communication-group-get-method-for-network"></a><h3>inf_communication_group_get_method_for_network ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       inf_communication_group_get_method_for_network
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *network</code></em>);</pre>
<p>
Returns the method name of the method used for communication on <em class="parameter"><code>network</code></em>
within <em class="parameter"><code>group</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>network</code></em> :</span></p></td>
<td>A network specifier, such as "tcp/ip" or "jabber".
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A method name. The string is owned by the group, you don't need
to free it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_get_method_for_connection ()">
<a name="inf-communication-group-get-method-for-connection"></a><h3>inf_communication_group_get_method_for_connection ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       inf_communication_group_get_method_for_connection
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *grp</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *conn</code></em>);</pre>
<p>
Returns the method name of the method used for communication on <em class="parameter"><code>conn</code></em>'s
network within <em class="parameter"><code>group</code></em>. <em class="parameter"><code>conn</code></em> does not need to be a member of <em class="parameter"><code>grp</code></em> for this
function to be called.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grp</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
<td>The <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> for which to retrieve the method.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A method name. The string is owned by the group, you don't need
to free it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_communication_group_get_publisher_id ()">
<a name="inf-communication-group-get-publisher-id"></a><h3>inf_communication_group_get_publisher_id ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             inf_communication_group_get_publisher_id
                                                        (<em class="parameter"><code><a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a> *for_connection</code></em>);</pre>
<p>
Returns a host identifier for the group's publisher (see
<a class="link" href="InfXmlConnection.html#InfXmlConnection--local-id" title='The "local-id" property'><span class="type">"local-id"</span></a> and <a class="link" href="InfXmlConnection.html#InfXmlConnection--remote-id" title='The "remote-id" property'><span class="type">"remote-id"</span></a>). If the local
host is the publisher, then this will simply return <em class="parameter"><code>for_connection</code></em>'s
local ID, otherwise the remote ID of the connection to the publisher on
<em class="parameter"><code>for_connection</code></em>'s network is returned.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>A <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>for_connection</code></em> :</span></p></td>
<td>A <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The publisher's host ID. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="Property Details">
<a name="InfCommunicationGroup.property-details"></a><h2>Property Details</h2>
<div class="refsect2" title='The "communication-manager" property'>
<a name="InfCommunicationGroup--communication-manager"></a><h3>The <code class="literal">"communication-manager"</code> property</h3>
<pre class="programlisting">  "communication-manager"    <a class="link" href="InfCommunicationManager.html" title="InfCommunicationManager"><span class="type">InfCommunicationManager</span></a>*  : Write / Construct Only</pre>
<p>The communication manager used for sending requests.</p>
</div>
<hr>
<div class="refsect2" title='The "communication-registry" property'>
<a name="InfCommunicationGroup--communication-registry"></a><h3>The <code class="literal">"communication-registry"</code> property</h3>
<pre class="programlisting">  "communication-registry"   <a class="link" href="InfCommunicationRegistry.html" title="InfCommunicationRegistry"><span class="type">InfCommunicationRegistry</span></a>*  : Write / Construct Only</pre>
<p>The registry to register connections with.</p>
</div>
<hr>
<div class="refsect2" title='The "name" property'>
<a name="InfCommunicationGroup--name"></a><h3>The <code class="literal">"name"</code> property</h3>
<pre class="programlisting">  "name"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
<p>The name of the group.</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2" title='The "target" property'>
<a name="InfCommunicationGroup--target"></a><h3>The <code class="literal">"target"</code> property</h3>
<pre class="programlisting">  "target"                   <a class="link" href="InfCommunicationObject.html" title="InfCommunicationObject"><span class="type">InfCommunicationObject</span></a>*  : Read / Write</pre>
<p>The communication object to call on received and sent data.</p>
</div>
</div>
<div class="refsect1" title="Signal Details">
<a name="InfCommunicationGroup.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2" title='The "member-added" signal'>
<a name="InfCommunicationGroup-member-added"></a><h3>The <code class="literal">"member-added"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group,
                                                        <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a>      *connection,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)       : Run Last</pre>
<p>
This signal is emitted when a connection has been added to the group.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>The <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> emitting the signal.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>The newly joined connection.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title='The "member-removed" signal'>
<a name="InfCommunicationGroup-member-removed"></a><h3>The <code class="literal">"member-removed"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> *group,
                                                        <a class="link" href="InfXmlConnection.html" title="InfXmlConnection"><span class="type">InfXmlConnection</span></a>      *connection,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)       : Run Last</pre>
<p>
This signal is emitted when a connection has been removed from the group.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
<td>The <a class="link" href="InfCommunicationGroup.html" title="InfCommunicationGroup"><span class="type">InfCommunicationGroup</span></a> emitting the signal.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>The connection that was removed
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.15</div>
</body>
</html>